local unit = class("unit")

function unit:cotr(param)
    assert(type(param) == "table")
    assert(type(param.value) == "nil")
    assert(type(param.cache_size) == "number")
    self.__initial_value = param.value
    self.__cache_size = math.max(2, param.cache_size)
    self.__cache_queue = queue.new(self.__cache_size)
end

function unit:subscribe(fn) end
function unit:clear() end
function unit:reset() end
function unit:dispatch(fn_or_value) end
function unit:value() end
function unit:back() end
function unit:forward() end
function unit:cache() end
